\chapter{Final Remarks}
\acresetall
In this chapter, the findings throughout this report are discussed. In Section \ref{prestudy:extentofsolution} the study objectives were defined. To sum up the work done throughout this project, a brief summary of the project scope and objectives is given here. To ease the reader they are repeated below:

\begin{enumerate}
\item{\textit{Analyse the properties of \ac{EEP} and \ac{UEP} by \ac{NC}.}}
\item{\textit{Analyse different methods for \ac{UEP} by \ac{NC} and how these can be implemented on I- and P-frame based video data.}}
\item{\textit{Design and implement a software solution capable of \ac{UEP} by \ac{NC} for video streaming.}}
\end{enumerate}

In Section \ref{sec:eep} - \nameref{sec:eep} - the properties of \ac{RLNC} with \ac{EEP} is analysed and discussed. Throughout \ref{analysisofsolutions:nonexpandingwindows} and \ref{analysisofsolutions:expandingwindows} \ac{NW} and \ac{EW} is analysed and discussed respectively.
In Chapter \ref{implementation} - \nameref{implementation} - the functionality of the software solution is presented and discussed, furthermore the software solution has been optimized to support I- and P-frame based video. A more thorough discussion of the project follows.

\section{Discussion}\label{discussion}
It has been confirmed that it is possible to protect data in a video stream, to ensure at least low quality video for receivers with a bad connection, while receivers with better connections are able to acquire full quality video from the same stream. Apart from accommodation of bad receivers, results show that \ac{NC} in broadcast distribution of data can reduce network load significantly. With the increasing amount of mobile network traffic, more than half of this being video traffic, the need for such a solution is expected to rise.
%%The results in this report extends earlier research about distribution of data to multiple nodes using \ac{NC} by focusing on \ac{UEP}. A method which can aco
%%In \cite{NCMOBDEV_09} \ac{NC} for mobile devices is in focus, which is very relevant for an actual use of the findings in this project.
The findings in this project are consistent with \cite{UEP_RLC_MC}, although a different approach to video data is used. In \cite{UEP_RLC_MC}, an analysis of \ac{UEP} with \ac{SVC} is 
performed. Using \ac{SVC} as source coding for the video seems like the most reasonable approach for \ac{UEP} due to the scalable nature of the source coding. However, \ac{SVC} is not yet widely used, and tools used to implement \ac{SVC} is in an experimental state. An implementation of \ac{NC} with \ac{EW} \ac{UEP} of video data using conventional frame-based video coding has been developed. However, the \ac{NC} part of the implementation is designed as a separate module and can be applied to a \ac{SVC} implementation as well. Only the actual video output at the receiver should be different, and hopefully better.

Due to the trade-offs in especially overhead, the usage of \ac{UEP} is limited to setups where receivers have varying link quality, and where it is desirable that nodes get at least the important part of the data. However, if the goal is to transmit full quality video to as many receivers as possible, the optimum choice would be to use \ac{EEP}. 

In this project, \ac{NC} with \ac{UEP} of video data is investigated. Although being a good showcase for \ac{NC} with \ac{UEP}, the usage of \ac{NC} with \ac{UEP} is not limited to video data. Most setups where distribution of data with varying importance through an unreliable channel might be able to find usage of \ac{NC} with \ac{UEP}. This could be scenarios like wireless sensor networks or even satellite communication.

\subsection{Future Work}\label{discussion:future_exploration}
Further research can be done to improve performance of the \ac{UEP} methods, and especially the selective distribution of layers, and the number of layers can have significant impacts on \ac{UEP} performance. It is important to note that the optimum number of layers and distribution, $\mathbf{\Gamma}$, is highly dependent on the application.
An approach for improving performance of \ac{UEP} by \ac{EW} may lie in making $\boldsymbol \Gamma$ a function of the network conditions over time, however this approach may require feedback from the receivers. This may complicate the setup unnecessarily.
Cooperation between receivers could also optimise performance. By introducing a peer-to-peer setup between nodes could be helpful, especially if the links between the nodes are better than the nodes' link to the transmitter.
%function of time, meaning that after a given amount of packets sent the sinks will have a high probability for decoding a layer and it is then not necessary to send further packets from this layer. This approach has not been examined in this project.

As mentioned in Section \ref{implementation:software:recap} the layer size limitations can be removed by either modifying the encoder and decoder, however using an \ac{RLNC} library optimised for \ac{UEP} by \ac{EW} would make a more robust solution.
The software solution puts an entire \ac{GOP} into one generation, however this may from time to time result in very small generation sizes causing more overhead. This can be avoided by merging two \acsp{GOP} into one generation.
%% SVC er behandlet ovenover.
%In Section \ref{prestudy:identifyproblemandscenario:video} \ac{SVC} where introduced, but an implementation has not been pursued. This however seems intuitively as a natural expansion of the project, given its design.
The probabilistic layer decision rule $\boldsymbol \Gamma$ is in the implementation limited to integers, as stated in \ref{implementation:software:recap}. Even when only two layers are present, 100 combinations of $\mathbf{\Gamma}$ can be made. When the number of layers increases, the number of possible combinations increase dramatically, and the number will increase even further if $\boldsymbol \Gamma$ is accepted as a float. Choosing the optimum $\mathbf{\Gamma}$ by doing a sweep of all possible combinations will require a vast amount of calculations. A solution to this problem is to have the expression in a closed form, which is not feasible with the given form.


\section{Conclusion}
The ever-increasing data traffic from mobile devices causes an ever-increasing demand for data throughput on wireless networks, with video data as the heaviest load. This project combines state-of-the-art \ac{NC} theory with conventional video source coding, and proposes a video streaming solution that accommodates receivers with poor link quality and sustaining the possibility of full quality video for nodes with better channel conditions, while reducing the network load significantly.
The current solution aims to support or even replace the current approach of distributing video data to several receivers, in scenarios such as international sports events streamed by multiple users over 3G.
Additional research in the field have deduced similar conclusions, and the usability of \ac{NC} in broadcast setups are approved in general, however most research is primarily theoretical. 
The theory in the proposed solution is backed up by a video streaming application that implements \ac{UEP} while supporting a wide range of conventional video encodings. 
The trade-off between accommodation of poor link receivers and maximum throughput should be taken into consideration, and the optimum choice is heavily dependent on the application in question.  % more om application in question


%\ac{NC} with \ac{UEP} can be used to ensure video in a broadcast setup where nodes have heterogeneous link quality, but the trade-off in increased overhead for full reception should be taken into consideration. However, the usability of \ac{NC} with \ac{UEP} is highly dependent on the application.
%It has been shown that using \ac{NC} when distributing data to multiple nodes on an unreliable channel can significantly decrease the network load, and that \ac{UEP} can be applied for further protection of important data, while \ac{EEP} is the optimum solution for maximum throughput.
%Methods for \ac{UEP} in \ac{NC} has been analysed for usage on video data, and the \ac{EW} method has been implemented in a proof-of-concept video streaming software application.

%Due to the increasing data traffic from mobile devices, especially in the form if video

%The following sections will discuss and conclude on the relevant parts of the project.

